#include "Common.h"

/**
 * @brief 将8位无符号整数进行位交换
 *
 * 将传入的8位无符号整数中的二进制位进行交换，具体规则为：
 * 1. 将第1位和第0位交换，第3位和第2位交换，以此类推。
 * 2. 再将第2位和第0位交换，第6位和第4位交换，以此类推。
 * 3. 最后将第4位和第0位交换，第8位和第4位交换，以此类推。
 *
 * @param data 需要进行位交换的8位无符号整数
 *
 * @return 位交换后的8位无符号整数
 */
uint8_t data_swap_u8(uint8_t  data)
{
	data = ((data >> 1u) & 0x55u) | ((data & 0x55u) << 1u) ;
	data = ((data >> 2u) & 0x33u) | ((data & 0x33u) << 2u) ;
	data = ((data >> 4u) & 0x0fu) | ((data & 0x0fu) << 4u) ;
	return data;
}
